class Singleton:
    __instant=None #创建一个类属性保存对象
    __has_init=None #判断是否初始化

    def __new__(cls, *args, **kwargs):
        #做判断,如果创建对象后分配过地址
        if cls.__instant is None:
            cls.__instant = super().__new__(cls) #创建一个对象并且分配地址
        return cls.__instant

#注意要实用类属性保存对象,要用类属性做判断 ,类属性的值变化了,方法才会发生变化



    def __init__(self):
        #如果已经初始化 就直接返回
        if Singleton.__has_init:
            return
        #如果没有初始化就初始化
        print('111111')
        #初始化过后再将标记修改成TRUE 不然下次进来还是没有初始化过
        Singleton.__has_init=True

s1 = Singleton()
print(s1)
s2 =Singleton()
print(s2)